package lk.icta.core.dao;

import lk.icta.core.entity.LocalAuthorityType;
import lk.icta.user.entity.User;

import java.util.List;
import java.util.Map;

/**
 * @author Duminda Dharmakeerthi
 */
public interface LocalAuthorityTypeDAO {

    /**
     * Add a Local Authority
     *
     * @param localAuthorityType
     * @param user
     */
    public void addLocalAuthority(LocalAuthorityType localAuthorityType, User user);

    /**
     * Update a Local Authority
     *
     * @param localAuthorityType
     * @param user
     */
    public void updateLocalAuthority(LocalAuthorityType localAuthorityType, User user);

    /**
     * Find Local Authority by Id
     *
     * @param id
     * @param user
     * @return
     */
    public LocalAuthorityType getLocalAuthorityById(int id, User user);

    /**
     * Returns list of all Local Authorities
     *
     * @return
     */
    public List<LocalAuthorityType> getAllLocalAuthorities();

    /**
     * Returns Map of all Local Authorities
     *
     * @param language
     * @param user
     * @return
     */
    public Map<Integer, String> getAllLocalAuthorities(String language, User user);
}
